An image detection method to automatically detect a specific object pattern from an image is very useful, and usable in determining, for example, a human face. A method like this can be used in many fields including communication conferences, man-machine interfaces, security, monitoring systems for tracking human faces, and image compression.
Known examples of the technique of detecting a face from an image as described above are: a method of using several significant features and unique geometric positional relationships between the features; and a method of detecting human faces by using symmetrical features of human faces, features of human face colors, template matching, or a neural network.
When detecting a face from an image, a person is not always standing upright and facing front, and a camera may capture an image in an arbitrary direction at an arbitrary magnification. This makes it necessary to cope with various angles and sizes that faces can take. Accordingly, a detection process must be repeated while slightly changing the angle, size, and detection position of a detector.
This detection process requires a long time, however, if the process is performed for all combinations of enormous numbers of angles and sizes. Therefore, methods of reducing the detection process by restricting a search area have been proposed. Examples are a method of restricting a search area by limiting the angle and size of a face based on the initial detection result (Japanese Patent Laid-Open No. 2007-233517), and a method of restricting a search area by predicting the angle and size of a face from the detection result of the first one of successively captured images (Japanese Patent Laid-Open No. 2009-026299).
Unfortunately, the method described in Japanese Patent Laid-Open No. 2007-233517) cannot detect a correct face region if the initial detection result is a detection error. Also, the method described in Japanese Patent Laid-Open No. 2009-026299 cannot restrict the search range for an image that is not successively captured, and hence cannot shorten the processing time. Thus, the conventional methods of reducing the face detection process have various problems. Therefore, demands have arisen for a face detection process performed by an appropriate method that shortens the time of the detection process.
To detect faces in all directions, a method of widening the detection angle of a detector is possible. If the detection angle is widened, however, the robustness decreases, and this may worsen the detection performance. Especially when the detection algorithm requires learning, the widened detection angle complicates the learning. This not only prolongs the learning time, but also increases the possibility that the learning does not converge. Accordingly, the method of widening the detection angle is unadvisable, and it is necessary to use a detector having a proper detection angle.
Since the detection angle is restricted, a method of rotating only a detector a number of times is possible in order to detect faces in all directions. However, when analyzing a filter output value during detection, a filter is rotated. Consequently, the rotation changes the characteristics of the filter output, so no designed features can be captured, and the detection performance significantly deteriorates. Also, when rapidly analyzing a rectangular region by using Integral Image, no rapid analysis can be performed for rotation except for integral multiples of 90°. This significantly decreases the processing speed. Note that Integral Image is a method of obtaining the total sum of pixels in a specific rectangular region of an image.
On the other hand, a method of separately preparing an oblique detection parameter is possible, because the detection angle is restricted. When a detector requires learning, however, it is difficult to perform learning that equalizes the detection performances of two kinds of parameters for 90° rotation and oblique detection, and a detection performance difference is produced between the two kinds of parameters. As a consequence, when integrating the detection results of the two kinds of parameters, the overall detection performance degrades under the influence of a detection error. Furthermore, the use of the parameter for oblique detection requires not only an enormous learning time, but also a memory area for the parameter.
To detect faces in all directions that can appear in an image, therefore, the image must be rotated at angles other than the integral multiples of 90° of a detector, in addition to the rotations at the integral multiples of 90°. If the image is rotated, however, the image quality deteriorates because interpolation is necessary at angles other than the integral multiples of 90°. If the detection process is performed on the deteriorated image, analytical results different from prelearned analytical contents may be obtained, and the detection performance may deteriorate.
In the conventional techniques as described above, when detecting a region (for example, a face region) having a specific feature from an image regardless of the direction of the region, the processing time prolongs, or the detection performance degrades.